//package com.woniu.utils;
//
//import org.apache.commons.io.FileUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.mock.web.MockMultipartFile;
//import org.springframework.stereotype.Service;
//import org.springframework.web.multipart.MultipartFile;
//
//import java.io.File;
//import java.net.URL;
//import java.util.UUID;
//
//@Service
//public class AudioConverterService {
//    @Autowired
//    private MinioUtils minioUtils;
//
//    // 视频转音频方法
//    public MultipartFile convertToAudio(String videoUrl) throws Exception {
//        // 创建临时目录
//        File tempDir = new File("D:\\File\\System Storage Files\\Desktop\\BusinessSchool\\audio");
//        if (!tempDir.exists()) tempDir.mkdirs();
//
//        // 生成唯一文件名
//        String inputFileName = UUID.randomUUID() + ".tmp";
//        String outputFileName = UUID.randomUUID() + ".mp3";
//
//        File inputFile = new File(tempDir, inputFileName);
//        File outputFile = new File(tempDir, outputFileName);
//
//        try {
//            // 下载视频到临时文件
//            FileUtils.copyURLToFile(new URL(videoUrl), inputFile);
//
//            // 构建FFmpeg命令
//            ProcessBuilder processBuilder = new ProcessBuilder(
//                    "ffmpeg",
//                    "-i", inputFile.getAbsolutePath(),  // 输入文件
//                    "-vn",                            // 禁用视频流
//                    "-acodec", "libmp3lame",           // 使用MP3编码
//                    "-q:a", "2",                       // 音频质量（0-9，值越小质量越高）
//                    "-y",                              // 覆盖输出文件
//                    outputFile.getAbsolutePath()        // 输出文件
//            );
//
//            // 执行命令
//            Process process = processBuilder.start();
//            int exitCode = process.waitFor();
//
//            if (exitCode != 0) {
//                throw new RuntimeException("FFmpeg执行失败，退出码: " + exitCode);
//            }
//            // 读取输出文件为字节数组
//            byte[] fileContent = FileUtils.readFileToByteArray(outputFile);
//            // 封装为 MultipartFile
//            return new MockMultipartFile(
//                    "file", // 表单中的字段名称
//                    outputFileName, // 原始文件名
//                    "audio/mpeg", // 内容类型
//                    fileContent // 文件内容字节
//            );
//        } finally {
//            // 清理临时文件
//            if (inputFile.exists()) inputFile.delete();
//            if (outputFile.exists()) outputFile.delete();
//        }
//    }
//}
